Skip to main content
Version: 2.0

Android

How to add a new screen

Appkit allows to add extra screens to generic main screen flow. This is useful when you want to add a new feature to the app that is not part of the main flow.

Create a new screen

To create a new screen, you need to create a class that implements the Screen interface.

class MyScreen : Screen {
override val id: Int = 0
override val analyticsName: String = "MyScreen"
override val name: TextRes = TextRes.Resource(R.string.my_screen_name)
override val iconResId: Int = R.drawable.ic_my_screen
override val fragment: (Context) -> Fragment = {
MyFragment()
}
override val order: Int = 0
}

Create a new TapProvider to expose the new screen to the Appkit

To expose the new screen to the Appkit, you need to create a new ScreenProvider that will provide the new screen.

class MyScreenProvider : ScreenProvider {
val screens: List<Screen> = listOf(MyScreen())
}

Add the new screen to the SdkInitializer

To add the new screen to the Appkit, you need to add the new ScreenProvider to the SdkInitializer.

context.installHumaSdk(
appkit {
// Add the new screen provider to a set of existing screen providers
addScreenProviders(MyScreenProvider())
// or replace the existing screen providers with the new one
setScreenProviders(MyScreenProvider())
}
)

How to control the order of screens

Set the order of screens in the Screen implementation

You can control the order of screens by setting the order property of the screen. The screen with the lowest order will be displayed first.

class MyScreen : Screen {
// other properties
override val order: Int = 0
}

Set the order of screens in the ScreenOrderProvider implementation

You can control the order of screens by setting the order in the ScreenOrderProvider implementation.

class MyScreenOrderProvider : ScreenOrderProvider {
fun orderScreens(screens: List<Screen>): List<Screen> {
return screens.sortedBy { your_ordering_logic }
}
}

Add the new ScreenOrderProvider to the SdkInitializer

To add the new ScreenOrderProvider to the Appkit, you need to add it to the SdkInitializer.

context.installHumaSdk(
appkit {
screenOrderProvider = MyScreenOrderProvider()
}
)